package arrays_and_matrices;

/**
 * 题目：从一个字符串中找出第一个在字符串中不重复的字符的位置；组成字符串的字符都为ascll码
 * 例：adbccba 中不重复的字符为 d
 * 思路：ascll 码总共有128个，可以定义128容量的数组，和字符串中的字符匹配，如果匹配到位置上的数据就加1，最后等于1的就是符合要求的。
 */

public class FirstAppear {
    public static void main(String[] args) {
        FirstAppear firstAppear = new FirstAppear();
        int result = firstAppear.firstAppear("adbccba");
        System.out.println(result);
    }

    public int firstAppear(String str) {
        if (str == null || str.isEmpty()) {
            return -1;
        }
        int[] chars = new int[128];
        for (int i = 0; i < str.length(); i++) {
            chars[str.charAt(i)]++;
        }

        for (int i = 0; i < str.length(); i++) {
            if (chars[str.charAt(i)] == 1) {
                return i;
            }
        }
        return -1;
    }
}
